/**
 * Created with IntelliJ IDEA.
 * Description: leetcode: 263. 丑数
 * <a href="https://leetcode.cn/problems/ugly-number/description/">...</a>
 * User: DELL
 * Date: 2023-10-31
 * Time: 23:29
 */
public class Solution {
    /**
     * 解题思路: (数学归纳法)
     * 如果一个数只包含质因子 2，3，5 的一部分或者全部，那么假设该数为 x，
     * 则 x = 2^a * 3^b * 5^c，即只有正整数才可能为丑数，同时如何判断
     * 一个正整数是否为丑数呢，那么就让正整数一直整除 2 或 3 或 5，直到
     * 整除不了的时候，那么如果最后数字变为 1，那么即为丑数
     *
     * @param n
     * @return
     */
    public boolean isUgly(int n) {
        // 截断 n <= 0 的情况
        if (n <= 0) {
            return false;
        }
        while (true) {
            if (n % 2 == 0) {
                n /= 2;
            } else if (n % 3 == 0) {
                n /= 3;
            } else if (n % 5 == 0) {
                n /= 5;
            } else {
                break;
            }
        }
        return n == 1;
    }
}